home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / pd / serien / purity / nr.37 / useful / prtdev.p < prev    next >
Text File  |  1994-09-17  |  4KB  |  175 lines

  1. { Programm:   Printer.device-Demo V0.5  25.07.94
  2.   ~~~~~~~~~
  3.   Sprache:    KP2.12 / OS2 bzw. MP3
  4.   ~~~~~~~~
  5.   Sinn:       - puffern der zu Druckstart eingestellten Prefs (Prt) -->
  6.   ~~~~~       - Drucken mit verschiedenen Modies                    -->
  7.               - Rücksetzen der Prefs
  8.  
  9.   Autor:      PackMAN
  10.   ~~~~~~      c/o Falk Zühlsdorff
  11.               Lindenberg 66
  12.               D-98693 Ilmenau / Thüringen
  13.  
  14.   Copyright:  © by PackMAN (keine Freeware etc.)
  15.   ~~~~~~~~~~
  16.               wird nur an vom Autor bestimmte Leute abgegeben
  17.  
  18.   Thanx:      Jens Gelhar ( byte:=DoIO(PTR(Pio)) nicht byte:=DoIO(Pio)
  19.   ~~~~~~      Jens Tröger ( dopW, für moralische Unterstützung       )  }
  20.  
  21. Program Prtdevs;
  22.  
  23. USES EXECIO;
  24. {$incl "devices/printer.h","devices/prtbase.h"}
  25.  
  26. TYPE PrinterIO=Record  { C: "union"  --> Pascal: Record mit Variantenteil.}
  27.                 Case integer Of                       { Thanx JG }
  28.                  0: ( ios      : IOStdReq );
  29.                  1: ( iodrp    : IODRPReq );
  30.                  2: ( iopc     : IOPrtCmdReq );
  31.                End;
  32.      StrType  = string[128];
  33.  
  34. VAR PrintMP  : ^MsgPort;
  35.     PIO      : ^PrinterIO;
  36.     doit     : byte;
  37.     pitch    : Word;
  38.     quality  : Word;
  39.     spacing  : Word;
  40.     lMargin  : Word;
  41.     rMargin  : Word;
  42.     PD       : ^PrinterData;
  43.     prefs,
  44.     oldprefs : ^Preferences;
  45.     Dev      : byte;
  46.  
  47. PROCEDURE PrtCom(PrtCommand:word;P0,P1,P2,P3:byte);
  48. BEGIN
  49.  PIO^.iopc.io_Command   :=PRD_PRTCOMMAND;
  50.  PIO^.iopc.io_PrtCommand:=PrtCommand;
  51.  PIO^.iopc.io_Parm0     :=P0;
  52.  PIO^.iopc.io_Parm1     :=P1;
  53.  PIO^.iopc.io_Parm2     :=P2;
  54.  PIO^.iopc.io_Parm3     :=P3;
  55.  
  56.  doit:=DOIO(PTR(PIO));
  57. END;
  58.  
  59. PROCEDURE CMDLn(msg:StrType);
  60. BEGIN
  61.  PIO^.ios.io_Command:=CMD_WRITE;
  62.  PIO^.ios.io_Data   :=^msg;
  63.  PIO^.ios.io_length :=-1;
  64.  
  65.  doit:=DoIO(PTR(PIO));
  66.  PrtCom(aNEL,0,0,0,0);
  67. END;
  68.  
  69. PROCEDURE GetPRTPrefs;
  70. BEGIN
  71.  PD:=NIL;
  72.  Prefs:=NIL;
  73.  PD:=^PIO^.ios.io_Device;
  74.  Prefs:=^PD^.pd_Preferences;
  75.  
  76.  pitch  :=Prefs^.PrintPitch;
  77.  quality:=Prefs^.PrintQuality;
  78.  spacing:=Prefs^.PrintSpacing;
  79.  lMargin:=Prefs^.PrintLeftMargin;
  80.  rMargin:=Prefs^.PrintRightMargin;
  81. END;
  82.  
  83. PROCEDURE SetPRTPrefs;
  84. BEGIN
  85.  Prefs^.PrintPitch      :=pitch  ;
  86.  Prefs^.PrintQuality    :=quality;
  87.  Prefs^.PrintSpacing    :=spacing;
  88.  Prefs^.PrintLeftMargin :=lMargin;
  89.  Prefs^.PrintRightMargin:=rMargin;
  90.  PrtCom(aRIN,0,0,0,0);
  91. END;
  92.  
  93. BEGIN
  94.  PrintMP:=CreatePort(NIL,0);
  95.  PIO:=CreateExtIO(PrintMP,SizeOf(PrinterIO));
  96.  Dev:=OpenDevice('printer.device',0,PTR(PIO),0);
  97.  IF Dev<>0
  98.   THEN BEGIN writeln('Konnte Printer.device nicht öffnen');exit;END;
  99.  
  100.  GetPRTPrefs;
  101.  
  102.  IF (PD=NIL) OR (Prefs=NIL)
  103.   THEN
  104.    BEGIN CloseDevice(PTR(PIO)); exit; END;
  105.  
  106.  CMDLn('Original-Prt.Prefs');
  107.  
  108. { PrtCom(aRIS    ,0,0,0,0);  {hardreset}}
  109.  PrtCom(aRIN    ,0,0,0,0);  {init}
  110.  PrtCom(aDEN2   ,0,0,0,0);  {NLQ}
  111.  PrtCom(aSHORP0 ,0,0,0,0);  {normal pitch / Pica}
  112.  PrtCom(aVERP0  ,0,0,0,0);  {1/6"}
  113.  
  114.  CMDLn('Printer.device-Demo V0.5 KP 2.12 / OS2');
  115.  
  116.  CMDLn('');
  117.  CMDLn('NLQ / Rand: Original / Pica / 1/6"');
  118.  CMDLn('');
  119.  PrtCom(aDEN1  ,0,0,0,0);  {NLQ off}
  120.  PrtCom(aSLRM  ,1,90,0,0); {Rand}
  121.  CMDLn('---------> C&P by PackMAN 7/94 All Right Reserved <---------');
  122.  CMDLn('Draft / Rand: 1(l)'+' 90 (r)');
  123.  
  124.  PrtCom(aSHORP2,0,0,0,0);   {Elite}
  125.  PrtCom(aVERP1 ,0,0,0,0);   {1/8"}
  126.  PrtCom(aSLRM, 20,70,0,0);  {Rand}
  127.  
  128.  CMDLn('Rand: 20 (l) 70(r) / Elite / 1/8"');
  129.  CMDLn('Der Sieg über das Printer.device | Thanx J.Gelhar');
  130.  
  131.  PrtCom(aSHORP4,0,0,0,0);   {Fine}
  132.  PrtCom(aSGR4  ,0,0,0,0);   {underline}
  133.  
  134.  CMDLn('Fine / underline');
  135.  
  136.  PrtCom(aSUS2 ,0,0,0,0);   {Fine / superscript }
  137.  
  138.  CMDLn('Superscript');
  139.  
  140.  PrtCom(aSUS4 ,0,0,0,0);   {Fine / subscript }
  141.  PrtCom(aSLRM,3,130,0,0);  {Rand}
  142.  
  143.  CMDLn('Subscript / Rand: 3 (l) 130 (r)');
  144.  
  145.  PrtCom(aSHORP6 ,0,0,0,0);  {Breit }
  146.  PrtCom(aSGR24  ,0,0,0,0);  {underline off}
  147.  
  148.  CMDLn('Breit / underline off');
  149.  
  150.  PrtCom(aSUS3,   0,0,0,0);  {subscript off}
  151.  
  152.  CMDLn('subscript off');
  153.  
  154.  PrtCom(aSHORP3,0,0,0,0);   {Fine off}
  155.  PrtCom(aSGR4  ,0,0,0,0);   {underline}
  156.  
  157.  CMDLn('Fine off / underline');
  158.  
  159.  SetPRTPrefs;
  160.  
  161.  CMDLn('Alte Prt.Prefs');
  162.  
  163.  CloseDevice(PTR(PIO));
  164.  DeleteExtIO(PIO);
  165.  DeletePort(PrintMP);
  166. END.
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.